The application of digital computer technology to graphic image and character generation and manipulation has provided numerous advantages and advances over prior technologies relating to graphics processing. In the areas of text image processing or typesetting, digital technology has borne productivity advances in the form of increased setting speed and creativity enhancement in the form of electronic manipulation.
Digital systems for creating and manipulating characters and other graphical objects generally involve: storing a digital representation of character images; retrieving the digital representations and transforming them to conform to a generalized size-independent coordinate system or matrix; manipulating the digital representations in relation to the generalized matrix; transforming the manipulated digital representations to conform to a second output-device-specific coordinate system or matrix; and rasterizing and physically embodying the digital representations for presenting the character images represented, in accordance with the output-device-specific matrix.
The storing of character images as digital representations involves the use of digital masters, which are typically high resolution bitmaps or outline or control point and vector data generated by digital type manufacturers. Digital masters are available for digitally representing a multiplicity of fonts and sizes.
The digital representations are typically stored and retrieved from a storage means by digital hardware and transformed to conform to a generalized matrix defined by hardware or software having the capability of executing operator-initiated manipulations of the digitally represented character images. Manipulations such as rotating, scaling and obliquing or slanting may be performed on the digital representations in accordance with the generalized matrix to which they conform in the digital hardware.
The desire to output the digital representations in the form of character images on a raster image device, requires that another transformation of the digital representations take place. The character image digital representation conforming to the generalized matrix must be transformed, by scaling and bit mapping or quantizing the image to conform to the coordinate system of the raster image device, whether it be a laser printer, dot matrix printer, pen plotter, video display terminal or the like. Almost universally, scaling and quantizing for output to a raster image device involves transformation from a high resolution (of the digital master and generalized matrix) to a lower resolution (of raster image devices). Such transformation introduces a number of problems.
The bit mapped character image digital representation scaled to conform to the output device-specific matrix, applied to a grid of picture elements (pixels) of lower resolution than the master, may result in a coarse rendering of the image. Where there is not a one-to-one or integer multiple relationship of elements in the transformation from the generalized matrix to the raster image device matrix, transformation errors result and may affect aesthetic features of the character image. Often, scaling produces fractional pixel errors wherein image outline features do not correspond directly to available pixels, causing either too many or too few pixels to be activated. At certain rendering sizes such fractional pixel errors result in undesirable aesthetic consequences including character stroke weight uneveness and loss of character roundness, as illustrated in FIG. 1a.
Known techniques implemented to solve character rendering problems have introduced, at the system level, a concomitant set of undesirable consequences. It is known in the art, to provide additional data with the digital representation of character images. The additional data defines relationships between features of a character image and implements rules providing for the maintenance of those relationships. The additional data defines character image features in terms of "zones". By application of the stored rules the system will "stretch" or "compress" particular character features or contours within zones, to bring specified contours into proper or aesthetically acceptable alignment with the bit mapped grid negating the effects of and discarding fractional pixel errors. Such "piece-wise linear transformation" is highly code and computation intensive, requiring significant additional resources in terms of storage capacity and transformation computation time.
Exacerbating the inherent inefficiency and undesirability of the techniques known in the art, is the attempt by those implementing such techniques to avoid redundancy of additional data and to maintain the relational aspects of character features among characters in a font, by constructing either linked character description data structures or massive global data bases containing character descriptions and relational rules. In some instances a character's features are defined in terms of the relationships of another character's features. The end results are involuted data structures demanding significant amounts of storage capacity and representing exorbitant amounts of system overhead in terms of processor cycles. System performance is, obviously, adversely impacted.
Furthermore, the accessing of large amounts of data which is relational and linked, forces batch-like processing because the data is necessary for determining how generalized transformation and scaling of the entire character are to be performed. In the case of highly relational and linked data a non-selected character may have to be processed in order to access features and relationships for a selected character. Such a batch-like technique may preclude a pipelined architecture to enhance processing speed.